package org.jsola.hr.helper;

import org.jsola.common.ClassKit;
import org.jsola.hr.dto.CrmVisitRecordAddDTO;
import org.jsola.hr.dto.CrmVisitRecordUpdateDTO;
import org.jsola.hr.entity.CrmVisitRecordDO;
import org.jsola.hr.query.CrmVisitRecordQuery;
import org.jsola.hr.service.ICrmVisitRecordService;
import org.jsola.hr.vo.CrmVisitRecordVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.Date;
import java.util.List;

import static org.jsola.hr.core.AbstractTest.SITE_ID;



/**
 * 拜访记录表
 *
 * @author zhr
 */
@Component
public class CrmVisitRecordTestHelper extends BaseTestHelper {
    
    @Autowired
    private ICrmVisitRecordService crmVisitRecordService;

    /**
     * 生成add测试数据
     * @return CrmVisitRecordAddDTO
     */
    public CrmVisitRecordAddDTO getCrmVisitRecordAddDTO(){
        CrmVisitRecordAddDTO crmVisitRecordAddDTO = new CrmVisitRecordAddDTO();
        crmVisitRecordAddDTO.setMemberName(getRandomValue("varchar",50));
        crmVisitRecordAddDTO.setVisitTime((Date)ClassKit.getObjectValue(getRandomValue("datetime",0),"java.util.Date"));
        crmVisitRecordAddDTO.setVisitAddress(getRandomValue("varchar",100));
        crmVisitRecordAddDTO.setVisitPicture(getRandomValue("varchar",200));
        crmVisitRecordAddDTO.setVisitInfo(getRandomValue("varchar",300));
        crmVisitRecordAddDTO.setMemberId(getRandomValue("varchar",100));
        crmVisitRecordAddDTO.setCustomerId(getRandomValue("varchar",32));
        crmVisitRecordAddDTO.setCustomerName(getRandomValue("varchar",100));
        return crmVisitRecordAddDTO;
    }


    /**
     * 生成update测试数据
     * @return CrmVisitRecordUpdateDTO
     */
    public CrmVisitRecordUpdateDTO getCrmVisitRecordUpdateDTO(CrmVisitRecordVO crmVisitRecordVO){
        return crmVisitRecordService.selectDOById(crmVisitRecordVO.getId(), SITE_ID).to(CrmVisitRecordUpdateDTO.class);
    }

    /**
     * 生成查询数据
     * @return CrmVisitRecordQuery
     */
    public CrmVisitRecordQuery getCrmVisitRecordQuery() {
        CrmVisitRecordQuery crmVisitRecordQuery = new CrmVisitRecordQuery();
        List<CrmVisitRecordDO> crmVisitRecordDOList = crmVisitRecordService.list(new CrmVisitRecordDO(),SITE_ID);
        if (!CollectionUtils.isEmpty(crmVisitRecordDOList)) {
            CrmVisitRecordDO crmVisitRecordDO = crmVisitRecordDOList.get(0);
            crmVisitRecordQuery = crmVisitRecordDO.to(CrmVisitRecordQuery.class);
        }
        return crmVisitRecordQuery;
    }

    /**
     * 保存示例
     * @return CrmVisitRecordVO
     */
    public CrmVisitRecordVO saveCrmVisitRecordExample(){
        CrmVisitRecordAddDTO addDTO = this.getCrmVisitRecordAddDTO();
        CrmVisitRecordVO crmVisitRecordVO = crmVisitRecordService.save(addDTO,buildTokenUser());
        return crmVisitRecordVO;
    }


}

